<?php
/**
Descrição: Arquivo de Funções em PHP
Autor: Theodoros Barsante Papadopoulos
Data: 25/08/2010
Lista de Funções:

- Formatar CPF ou CNPJ 		
- Formatar Moeda
- Formatar CEP
- Formatar Telefone
- Formatar Data
- Resumir Texto sem perder palavra

nome_da_funcao(valor, true (para padrão SQL) e false (para padrão BR)

*/
// Formatar CPF ou CNPJ
function formatarCPFouCNPJ($valor, $sql = true){ 
	$codigoLimpo = ereg_replace("[' '-./ t]",'',$valor); 
	$tamanho = (strlen($codigoLimpo) -2); 
	if ($tamanho != 9 && $tamanho != 12)
		return false; 
	if ($sql)
		$retorno = $codigoLimpo; 
	else{
		$mascara = ($tamanho == 9) ? '###.###.###-##' : '##.###.###/####-##';  
		$indice = -1; 
		for ($i=0; $i < strlen($mascara); $i++){
			if ($mascara[$i]=='#') 
				$mascara[$i] = $codigoLimpo[++$indice]; 
		}
		$retorno = $mascara; 
	}
	return $retorno; 
}
                                                                           
// Formatar Moeda
function formatarMoeda($valor, $sql = true){
	if($sql){
		$valor = str_replace('.', '', $valor);
 		$valor = str_replace(',', '.', $valor);
	}else{				
		$valor = "R$ ".number_format($valor,2,',','.');
	}
	return $valor;
}



// Formatar CEP
function formatarCEP($valor, $sql = true){
	if($sql){
		$valor = str_replace('-', '', $valor);
	}else{
		$parte1 = substr($valor, 0, 5); 
		$parte2 = substr($valor, 5, 8); 
		$valor = $parte1."-".$parte2;		
	}
	return $valor;	
}



// Formatar Telefone
function formatarTelefone($valor, $sql = true){
	if($sql){
		$valor = str_replace('(', '', $valor);
		$valor = str_replace(')', '', $valor);
		$valor = str_replace('-', '', $valor);
		$valor = str_replace('', '-', $valor);
		return $valor;
	}else{
		$parte1 = substr($valor, 0, 2); 
		$parte2 = substr($valor, 2, 4); 
		$parte3 = substr($valor, 6, 10); 
		$valor = "(".$parte1.") ".$parte2."-".$parte3;
	}
	return $valor;
}

// Formatar Data
function formatarData($valor, $sql = true) {
	if($sql){
		$valor = str_replace('-', '/', $valor);
		$dividir = explode("/", $valor);
		$parte1 = $dividir[0]; $parte2 = $dividir[1]; $parte3 = $dividir[2];
		$valor = "$parte3-$parte2-$parte1"; 
		//$valor = str_replace('-', '/', $valor);
	}else{
		$valor = str_replace('/', '-', $valor);
		$dividir = explode("-", $valor);
		$parte1 = $dividir[0]; $parte2 = $dividir[1]; $parte3 = $dividir[2];
		$valor = "$parte3/$parte2/$parte1"; 
		//$valor = str_replace('/', '-', $valor);
	}
	return $valor;
}

function resumo($string,$chars) {  
     if (strlen($string) > $chars) {  
        while (substr($string,$chars,1) <> ' ' && ($chars < strlen($string))){  
             $chars++;  
        };  
     };  
  return substr($string,0,$chars);  
}; 
// Uso: resumo("Texto", 50);

function tratarSQLInjection($str) {
    if (!is_numeric($str)) {
        $str = get_magic_quotes_gpc() ? stripslashes($str) : $str;
        $str = function_exists('mysql_real_escape_string') ? mysql_real_escape_string($str) : mysql_escape_string($str);
    }
    return $str;
}

function numeroEscrito($n) {
    $numeros[1][0] = '';
    $numeros[1][1] = 'um';
    $numeros[1][2] = 'dois';
    $numeros[1][3] = 'três';
    $numeros[1][4] = 'quatro';
    $numeros[1][5] = 'cinco';
    $numeros[1][6] = 'seis';
    $numeros[1][7] = 'sete';
    $numeros[1][8] = 'oito';
    $numeros[1][9] = 'nove';
    $numeros[2][0] = '';
    $numeros[2][10] = 'dez';
    $numeros[2][11] = 'onze';
    $numeros[2][12] = 'doze';
    $numeros[2][13] = 'treze';
    $numeros[2][14] = 'quatorze';
    $numeros[2][15] = 'quinze';
    $numeros[2][16] = 'dezesseis';
    $numeros[2][17] = 'dezesete';
    $numeros[2][18] = 'dezoito';
    $numeros[2][19] = 'dezenove';
    $numeros[2][2] = 'vinte';
    $numeros[2][3] = 'trinta';
    $numeros[2][4] = 'quarenta';
    $numeros[2][5] = 'cinquenta';
    $numeros[2][6] = 'sessenta';
    $numeros[2][7] = 'setenta';
    $numeros[2][8] = 'oitenta';
    $numeros[2][9] = 'noventa';
    $numeros[3][0] = '';
    $numeros[3][1] = 'cem';
    $numeros[3][2] = 'duzentos';
    $numeros[3][3] = 'trezentos';
    $numeros[3][4] = 'quatrocentos';
    $numeros[3][5] = 'quinhentos';
    $numeros[3][6] = 'seiscentos';
    $numeros[3][7] = 'setecentos';
    $numeros[3][8] = 'oitocentos';
    $numeros[3][9] = 'novecentos';
 
    $n = number_format($n, 2, '', '');
    $n = substr($n, 0, strlen($n) - 2);
    $qtd = strlen($n);
    $compl[0] = ' mil ';
    $compl[1] = ' millhão ';
    $compl[2] = ' millhões ';
    $numero = "";
    $casa = $qtd;
    $pulaum = false;
    $x = 0;
    for ($y = 0; $y < $qtd; $y++) {
        if ($casa == 5) {
            if ($n[$x] == '1') {
                $indice = '1' . $n[$x + 1];
                $pulaum = true;
            } else {
                $indice = $n[$x];
            }
 
            if ($n[$x] != '0') {
                if (isset($n[$x - 1])) {
                    $numero .= ' e ';
                }
                $numero .= $numeros[2][$indice];
                if ($pulaum) {
                    $numero .= ' ' . $compl[0];
                }
            }
        }
 
        if ($casa == 4) {
            if (!$pulaum) {
                if ($n[$x] != '0') {
                    if (isset($n[$x - 1])) {
                        $numero .= ' e ';
                    }
                }
            }
            $numero .= $numeros[1][$n[$x]] . ' ' . $compl[0];
        }
 
        if ($casa == 3) {
            if ($n[$x] == '1' && $n[$x + 1] != '0') {
                $numero .= 'cento ';
            } else {
                if ($n[$x] != '0') {
                    if (isset($n[$x - 1])) {
                        $numero .= ' e ';
                    }
                    $numero .= $numeros[3][$n[$x]];
                }
            }
        }
 
        if ($casa == 2) {
            if ($n[$x] == '1') {
                $indice = '1' . $n[$x + 1];
                $casa = 0;
            } else {
                $indice = $n[$x];
            }
 
            if ($n[$x] != '0') {
                if (isset($n[$x - 1])) {
                    $numero .= ' e ';
                }
                $numero .= $numeros[2][$indice];
            }
        }
 
        if ($casa == 1) {
            if ($n[$x] != '0') {
                $numero .= ' e ' . $numeros[1][$n[$x]];
            } else {
                $numero .= '';
            }
        }
 
        if ($pulaum) {
            $casa--;
            $x++;
            $pulaum = false;
        }
 
        $casa--;
        $x++;
    }
    //Aqui é onde vai ser a saída desse texto.
    return ucfirst($numero . ' reais e centavos');
}

?>